ในสถาปัตยกรรมของระบบซีพลัสขนาดใหญ่ การกำหนดโครงสร้างแบบเป็นทางการ struct สำหรับการจัดกลุ่มข้อมูลชั่วคราวทุกครั้งมักจะเกินความจำเป็น โครงสร้าง std::tuple ทำหน้าที่เป็น คอนเทนเนอร์ที่หลากหลายโดยทั่วไปแล้ว std::pair เพื่อเก็บข้อมูลหลายชนิดที่แตกต่างกันได้ไม่จำกัดจำนวน
1. การสร้างและการจำกัด
ต่างจากคอนเทนเนอร์มาตรฐาน คือ tuple คอนสตรัคเตอร์คือ ชัดเจนคุณไม่สามารถใช้การเริ่มต้นแบบสำเนาจากลิสต์ได้ คุณต้องใช้การเริ่มต้นโดยตรงหรือ std::make_tuple.
tuple<int, double> t2 = {1, 2.5}; // ผิดพลาด!
2. การเข้าถึงและการตรวจสอบข้อมูลภายใน
สมาชิกถูกเข้าถึงผ่าน get<i>(ชื่อเทิพเปิล)โดยที่ i ต้องเป็นค่าคงที่ที่รู้ได้ตั้งแต่ตอนคอมไพล์ ข้อมูลเมตาสามารถสอบถามได้ผ่าน tuple_size และ tuple_element โดยใช้ decltype.
3. ตรรกะเชิงความสัมพันธ์
เทิพเปิลถูกเปรียบเทียบกันโดย ตามลำดับคำศัพท์ (เล็กซิกราฟิก)การเปรียบเทียบจะถูกต้องก็ต่อเมื่อเทิพเปิลทั้งสองมีจำนวนสมาชิกเท่ากัน และชนิดข้อมูลที่สัมพันธ์กันรองรับเครื่องหมายเปรียบเทียบ